The present invention concerns electronic data processing, and more particularly concerns an improved method for sharing the execution of functions performed on large data entities among multiple processors.
Word processing took a giant leap with the advent of microprocessor-based dedicated word processors and personal computers. Previous mainframe-based text processing programs, lacking a wide bandwidth between memory and text display on a terminal, and requiring time-sharing the program among multiple users, could not attain enough speed for a real-time "wysiwyg" (what you see is what you get) type word processor (WP). Presently available personal computers and dedicated word processors do successfully implement this type of WP for a single user, and their use is widespread.
However, in many cases it is desirable to house high-speed word processing programs in multiple-user minicomputers, for example. The cost of a minicomputer with terminals serving each person in a department is much less than the cost of providing individual personal computers and programs for each person, and has other advantages such as central storage of departmental records. The incremental cost of providing word processing (WP) on such a minicomputer would be low; but speeds are still not nearly high enough to provide the kind of WP functions people have come to expect from single-user machines.
Commonly assigned application Ser. No. 87,235 (filed Oct. 15, 1985 by P. J. Christenson et al.) provides a method of implementing word-processing and other programs requiring high-speed interaction with a display and involving large amounts of data. That method employs a processing system having multiple processors. A central processor (CP) is capable of operating directly upon a large data entity such as an entire document, but its code is shared among all operators. An input/output processor (IOP) interacts directly with each operator's display in real time, but it can store only a limited amount of data, perhaps only a small portion of that operator's document. Broadly speaking, the IOP executes functions of the program upon such data as is available to it in a local storage. Whenever a function requires a larger block of data, the IOP requests the CP to perform a part of the function on the data not directly available to the IOP. Typically, the IOP processes as much text as can be displayed to a user at one time on a terminal, while the CP operates on an entire document. The functions include such things as locating the occurrence of designated characters in a document ("locate", "search", etc.) and processing specified blocks of characters as a unit ("delete", "move", etc.).
The foregoing method was originally conceived in the context of a minicomputer having a microprocessor-based workstation controller and a number of "dumb" terminals attached thereto. More and more, system users attach "smart" terminals or personal computers using terminal-emulation software to such minicomputers.